<?php

namespace mpend\modules\shop\models;

use Yii;
use yii\data\ActiveDataProvider;
use common\helpers\Url;

/**
 * This is the model class for table "{{%dynamic}}".
 *
 * @property int $id
 * @property string $user_id 用户ID
 * @property string $content
 * @property int $direction 动态类型：0主动动态，1被动动态
 * @property int $retweet_id 转发动态原始ID
 * @property int $status
 * @property string $created_at
 * @property string $updated_at
 * @property string $deleted_at
 */
class ProductSearch extends \common\logics\ShopProductLogic {

    public $category_id;

    /**
     * {@inheritdoc}
     */
    public function rules() {
        $rules = parent::rules();
        return \common\helpers\ArrayHelper::merge($rules, [
            [['category_id'], 'safe'],
        ]);
    }

    /**
     * Creates data provider instance with search query applied
     *
     * @param array $id
     *
     * @return ActiveDataProvider
     */
    public function search() {
        $query = static::find()
        ->alias('t')
        ->where([
            't.status' => static::STATUS_ACTIVE,
            't.deleted_at' => 0,
        ])
        ->joinWith('categories c')
        ->andWhere(['c.category_id' => $this->category_id]);

        $query->orderBy = ['t.created_at' => SORT_DESC];

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        Yii::$app->db->cache(function($db) use($dataProvider) {
            $dataProvider->prepare();
        }, 60);

        return $dataProvider;
    }

}
